package com.demo.java.OD201_250.OD243;

import java.util.*;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【第 k 长子串 or 连续字母长度】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145960490
 */
public class OdMain {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String line = in.nextLine(); // 读取输入的字符串
        int k = in.nextInt(); // 读取输入的整数

        // 创建一个HashMap，用于存储每个字符出现的最大连续次数
        HashMap<Character, Integer> map = new HashMap<>();

        // 将字符串转换为字符数组
        char[] chars = line.toCharArray();
        if (chars.length == 0) {
            // 如果字符数组为空，输出-1并结束程序
            System.out.println(-1);
            return;
        }

        // 初始化当前字符为字符数组的第一个字符，并将计数器设为1
        char cur = chars[0];
        int count = 1;
        map.put(cur, count); // 将当前字符和出现的次数存入HashMap

        // 遍历字符数组
        for (int i = 1; i < chars.length; i++) {
            char c = chars[i];
            if (c == cur) {
                count++; // 如果当前字符与前一个字符相同，增加计数器
            } else {
                // 如果当前字符与前一个字符不同，更新当前字符
                cur = c;
                count = 1; // 重置计数器
            }
            // 更新当前字符的最大连续次数
            map.put(cur, map.containsKey(cur) ? Math.max(map.get(cur), count) : count);
        }

        // 创建一个List来存储每个字符的最大连续次数
        List<String> list = new ArrayList<>();
        map.forEach((key, value) -> list.add(key + "-" + value));

        // 按照出现次数降序排序
        list.sort(Comparator.comparingInt(o -> -Integer.parseInt(o.split("-")[1])));

        // 判断是否有足够的k个不同的字符
        if (k > list.size()) {
            System.out.println(-1); // 如果k大于列表大小，输出-1
        } else {
            System.out.println(list.get(k - 1).split("-")[1]); // 输出第k大的出现次数
        }

        in.close();
    }
}